package day3;

import java.io.*;
import java.net.Socket;
// HTTP 客户端
public class HTTPClient {
    public static void main(String[] args) throws IOException {
        // 1. HTTP 客户端，要发送 HTTP 请求，先建立 TCP 连接
        // 我们当前进程和www.baidu.com主机上绑定 8080 端口的进程使用 TCP 通信（要求 建立 TCP 连接）
        Socket socket = new Socket("localhost", 80);

        OutputStream os = socket.getOutputStream();
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(os, "UTF-8"));

        // 只有请求行，请求头为空，没有请求体
        String request = "GET / HTTP/1.0\r\n\r\n";
        writer.print(request);
        // 冲刷缓冲区
        writer.flush();

        // 读取百度返回的 HTTP 响应
        InputStream is = socket.getInputStream();
        byte[] buf = new byte[10240];    // 我们知道响应不会超过 1024 字节的
        int n = is.read(buf);
        String response = new String(buf, 0, n, "UTF-8");
        System.out.println(response);
    }
}
